如何让我的机器人动起来——SLAM、导航与底盘
Overview
解决的核心问题:如何让小车自动移动到指定位置
一个简单的问题由于实际环境的复杂导致存在大量的误差
我的周围可能存在很多的障碍物,路径存在限制,我要怎么知道我周边环境的地图信息?
前往目标点的路径不一定是直线,我要怎么根据现有地图找到最优路径?
我知道小车的整体目标速度,要怎么控制电机才能让整个小车按照我的目标速度行驶?
SLAM:得到环境的整个地图
导航:根据已有的环境地图,输入要到达的目标点,根据算法输出在小车行驶过程中每个时刻的底盘速度
底盘:将导航计算出的底盘速度通过运动学结算转化为每个电机的速度,再控制每个电 机按照目标速度行驶
由于 SLAM 和导航都是非常庞杂的工程框架,本次培训将不涉及对具体代码的讲解,而以整体框架的介绍为主
相信在听懂整体框架后,后续上手也不会太难 😄
SLAM
什么是 SLAM
SLAM 是 Simultaneous Localization And Mapping 的缩写,中文译作 ”同时定位与地图构建“ 。
它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。
在实际应用中,SLAM 的过程一般会先于导航完成,通过遥控 or 自动行驶的方式让机器人先完成对环境的建图。
利用Cartographer SLAM算法跑德意志博物馆bag效果
需要实现的功能:
- 我在什么地方?——定位
- 周围环境是什么样?——建图
只有时刻明白自己在地图中的相对位置,机器人才能一边移动一边还原出地图的全貌。